package com.yilin.tms.order.service.order;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.tms.core.application.PageData;
import com.yilin.tms.core.entity.order.goods.GoodsOrder;
import com.yilin.tms.core.entity.order.rob.RobOrder;
import com.yilin.tms.core.entity.user.account.Account;
import com.yilin.tms.core.entity.user.organize.Organize;

import java.util.List;

public interface IRobService extends IService<RobOrder> {

    PageData<RobOrder> getRobOrderPage(Account loginUser, RobOrder query, Integer start, Integer limit);

    void updateRobByGoodsStatus(String id, RobOrder.RobStatus cancel, Account loginUser);

    List<RobOrder> getWaitRobByGoodsOrderId(String robAccountId, String goodsOrderId);

    int getCancelNumberByUser(Account loginUser);

    RobOrder getRobOrderDetail(Account loginUser, String robOrderId);

    PageData<RobOrder> getPublicRobOrderPage(RobOrder query, Integer start, Integer limit);

    void batchAssignGoodsOder(Account loginUser, GoodsOrder localGoodsOrder, List<RobOrder> robOrderList);

    void assignGoodsOder(Account loginUser, RobOrder robOrder, GoodsOrder localGoodsOrder, Organize robOrganize, Account robAccount);

    RobOrder saveRobOrder(Account loginUser, RobOrder robOrder);

    void auditRobOrder(Account loginUser, GoodsOrder localGoodsOrder, RobOrder localRobOrder);

    String assignTruck(Account loginUser, RobOrder localRobOrder,GoodsOrder localGoodsOrder);

    void cancelRobOrder(Account loginUser, RobOrder localRobOrder);

    List<RobOrder> getRunRobOrderByOrganizeId(String organizeId);

    List<RobOrder> getRunRobOrderByAccountId(String accountId);

    void autoScrapRobOrder();

    List<RobOrder> getRobSuccessListByGoodsOrderId(String id);

}
